﻿using System.Collections.Generic;
using MJD.Comunes.DtoEntidades;
using MJD.Comunes.Entidades;

namespace MJD.Logica.Traductores
{
    /// <summary>
    /// Clase que traduce la entidad aseguradora en un dtoAseguradora
    /// </summary>
    public class TraductorAseguradora
    {
        /// <summary> Metodo que traduce los datos de la entidad aseguradora en DtoAseguradora para ser serializado para enviarse por el servicio </summary>
        /// <param name="entidad">datos de la entidad a ser traducido</param>
        /// <returns>DtoAseguradora</returns>
        public static DtoAseguradora TraducirEntidad(Aseguradora entidad)
        {
            DtoAseguradora dto = new DtoAseguradora();
            dto.Estatus = entidad.Estatus;
            dto.Id = entidad.Id;
            dto.LetraRif = entidad.LetraRif;
            dto.Nombre = entidad.Nombre;
            dto.Telefono = entidad.Telefono;
            dto.Rif = entidad.Rif;

            return dto;
        }


        /// <summary> Metodo que traduce los datos del dtoaseguradora en aseguradora para ser manejado por el servidor </summary>
        /// <param name="dto">dato del dto para traducir en entidad</param>
        /// <returns>Aseguradora</returns>
        public static Aseguradora TraducirDto(DtoAseguradora dto)
        {
            Aseguradora entidad = new Aseguradora();
            entidad.Estatus = dto.Estatus;
            entidad.Id = dto.Id;
            entidad.LetraRif = dto.LetraRif;
            entidad.Rif = dto.Rif;
            entidad.Nombre = dto.Nombre;
            entidad.Telefono = dto.Telefono;

            return entidad;
        }


        /// <summary> Metodo que traduce una lista de entidades a una lista de dto's </summary>
        /// <param name="listaEntidad"></param>
        /// <returns></returns>
        public static List<DtoAseguradora> TraducirListaEntidad(IList<Aseguradora> listaEntidad)
        {
            List<DtoAseguradora> retorno = new List<DtoAseguradora>();
            foreach (Aseguradora entidad in listaEntidad)
            {
                retorno.Add(TraducirEntidad(entidad));
            }
            return retorno;
        }


        /// <summary> Metodo que traduce una lista de dto's a una lista de entidades </summary>
        /// <param name="listaDto">lista a traducir</param>
        /// <returns>lista de entidades</returns>
        public static IList<Aseguradora> TraducirListaDto(List<DtoAseguradora> listaDto)
        {
            IList<Aseguradora> retorno = new List<Aseguradora>();
            foreach (DtoAseguradora dto in listaDto)
            {
                retorno.Add(TraducirDto(dto));
            }
            return retorno;
        } 
    
    }
}
